package cn.hl.hm.util;

import cn.hl.hm.constants.UploadConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;

import java.lang.reflect.Field;


/**
 * 
 * @author 大和 图片地址统一处理
 */
@Component
public class BeanPicUtil {
	@Autowired
	@Qualifier("uploadConfig")
	private UploadConfig uploadConfig;

	/**
	  * @Title: modifyUrl  
	  * @Description:回显
	  * @date: 2017年1月12日
	  * @author:大和
	  * @param t
	  * @return
	  * @throws Exception T 
	  * @throws
	 */
	public  <T> T modifyUrl(T t) throws Exception {
		String ctxPath = uploadConfig.getLongUrl();
		Field[] fs = t.getClass().getDeclaredFields();
		for (int i = 0; i < fs.length; i++) {
			Field f = fs[i];
			f.setAccessible(true); // 设置些属性是可以访问的
			Object val = f.get(t);// 得到此属性的值
			String name = f.getName();
			//System.out.println("name:" + name + "\t value = " + val);
			String type = f.getType().toString();// 得到此属性的类型
			if (name.endsWith("Pic")||name.equals("qrInfo")) {
				if(val!=null && !val.equals("")&&!val.toString().contains("http://hm.hlvan.cn/upload/dirver_qr_pic")){
					
					f.set(t,ctxPath+val); // 给属性设值
				}
			}else if (name.endsWith("Pics")) {
				if(val!=null && !val.equals("")){
					
					String[] split = val.toString().split(",");
					
					StringBuffer sb = new StringBuffer();
					
					
					if(split!=null&&split.length>0){
						for (int j = 0; j < split.length; j++) {
							
							sb.append(ctxPath+split[j]).append(",");
						}
					}
					sb.deleteCharAt(sb.lastIndexOf(","));
					String string = sb.toString();
					f.set(t,string); // 给属性设值

					
				}
			}
			
		}
		return (T) t;
	}
	
//	/**
//	  * @Title: modifyUrl  
//	  * @Description:回显
//	  * @date: 2017年1月12日
//	  * @author:大和
//	  * @param t
//	  * @return
//	  * @throws Exception T 
//	  * @throws
//	 */
//	public  List<T>   modifyUrlList( List<T> list) throws Exception {
//		String ctxPath = uploadConfig.getLongUrl();
//		for (T t : list) {
//			Field[] fs = t.getClass().getDeclaredFields();
//			for (int i = 0; i < fs.length; i++) {
//				Field f = fs[i];
//				f.setAccessible(true); // 设置些属性是可以访问的
//				Object val = f.get(t);// 得到此属性的值
//				String name = f.getName();
//				System.out.println("name:" + name + "\t value = " + val);
//				String type = f.getType().toString();// 得到此属性的类型
//				if (name.contains("Pic")) {
//					if(val!=null){
//						f.set(t,ctxPath+val); // 给属性设值
//					}
//				}
//			}
//		}
//		return list;
//		
//	 
//	}
	/**
	 * 
	  * @Title: cutUrl  
	  * @Description:入库
	  * @date: 2017年1月12日
	  * @author:大和
	  * @param t
	  * @return
	  * @throws Exception T 
	  * @throws
	 */
	public  <T> T cutUrl(T t) throws Exception {
		String ctxPath = uploadConfig.getLongUrl();
		Field[] fs = t.getClass().getDeclaredFields();
		for (int i = 0; i < fs.length; i++) {
			Field f = fs[i];
			f.setAccessible(true); // 设置些属性是可以访问的
			Object val = f.get(t);// 得到此属性的值
			String name = f.getName();
			//System.out.println("name:" + name + "\t value = " + val);
			String type = f.getType().toString();// 得到此属性的类型
			if (name.endsWith("Pic")) {
				if(val!=null){
					String replace = val.toString().replace(uploadConfig.getLongUrl(), "").replace(ImageUtils.RESOLUTION_1080,"");
					f.set(t,replace); // 给属性设值
				}
				
			}else if (name.endsWith("Pics")) {
				if(val!=null && !val.equals("")){
					
					String[] split = val.toString().split(",");
					
					StringBuffer sb = new StringBuffer();
					
					
					if(split!=null&&split.length>0){
						for (int j = 0; j < split.length; j++) {
							sb.append(split[j].replace(uploadConfig.getLongUrl(), "").replace(ImageUtils.RESOLUTION_1080,"")).append(",");
						}
					}
					
					String string = sb.toString();
					f.set(t,string); // 给属性设值

					
				}
			}
		}
		return (T) t;
	}
}
